package org.cuit.echo.seon;

/**
 * @author Seon
 * @version 1.0
 * @since 2024-09-10
 */
public class House {
    private String foundation;

    private String structure;

    private String roof;

    private String interior;

    private House(HouseBuilder houseBuilder) {
        this.foundation = houseBuilder.foundation;
        this.structure = houseBuilder.structure;
        this.roof = houseBuilder.roof;
        this.interior = houseBuilder.interior;
    }

    @Override
    public String toString() {
        return "House [foundation=" + foundation + ", structure=" + structure +
                ", roof=" + roof + ", interior=" + interior + "]";
    }

    public static class HouseBuilder {
        private String foundation;

        private String structure;

        private String roof;

        private String interior;

        public HouseBuilder buildFoundation(String foundation) {
            this.foundation = foundation;
            return this;
        }

        public HouseBuilder buildStructure(String structure) {
            this.structure = structure;
            return this;
        }

        public HouseBuilder buildRoof(String roof) {
            this.roof = roof;
            return this;
        }

        public HouseBuilder buildInterior(String interior) {
            this.interior = interior;
            return this;
        }

        public House build() {
            return new House(this);
        }
    }
}
